package com.own.business.wechat.base.em;

import com.own.base.BaseResponseCode;
import lombok.AllArgsConstructor;

/**
 * WechatCodeEnum
 *
 * @author chenxueli
 * @date 2023-06-30 10:23:54
 */
@AllArgsConstructor
@SuppressWarnings("all")
public enum WechatCodeEnum implements BaseResponseCode {

    NOT_FOUND(false, "-2", "错误码内容丢失"),
    CODE_F1(false, "-1", "系统繁忙，此时请开发者稍候再试"),
    SUCCESS(true, "0", "请求成功"),
    CODE_40001(false, "40001", "获取 access_token 时 AppSecret 错误，或者 access_token 无效。请开发者认真比对 AppSecret 的正确性，或查看是否正在为恰当的公众号调用接口"),
    CODE_40002(false, "40002", "不合法的凭证类型"),
    CODE_40003(false, "40003", "不合法的 OpenID ，请开发者确认 OpenID （该用户）是否已关注公众号，或是否是其他公众号的 OpenID"),
    CODE_40004(false, "40004", "不合法的媒体文件类型"),
    CODE_40005(false, "40005", "不合法的文件类型"),
    CODE_40006(false, "40006", "不合法的文件大小"),
    CODE_40007(false, "40007", "不合法的媒体文件 id"),
    CODE_40008(false, "40008", "不合法的消息类型"),
    CODE_40009(false, "40009", "不合法的图片文件大小"),
    CODE_40010(false, "40010", "不合法的语音文件大小"),
    CODE_40011(false, "40011", "不合法的视频文件大小"),
    CODE_40012(false, "40012", "不合法的缩略图文件大小"),
    CODE_40013(false, "40013", "不合法的 AppID ，请开发者检查 AppID 的正确性，避免异常字符，注意大小写"),
    CODE_40014(false, "40014", "不合法的 access_token ，请开发者认真比对 access_token 的有效性（如是否过期），或查看是否正在为恰当的公众号调用接口"),
    CODE_40015(false, "40015", "不合法的菜单类型"),
    CODE_40016(false, "40016", "不合法的按钮个数"),
    CODE_40017(false, "40017", "不合法的按钮类型"),
    CODE_40018(false, "40018", "不合法的按钮名字长度"),
    CODE_40019(false, "40019", "不合法的按钮 KEY 长度"),
    CODE_40020(false, "40020", "不合法的按钮 URL 长度"),
    CODE_40021(false, "40021", "不合法的菜单版本号"),
    CODE_40022(false, "40022", "不合法的子菜单级数"),
    CODE_40023(false, "40023", "不合法的子菜单按钮个数"),
    CODE_40024(false, "40024", "不合法的子菜单按钮类型"),
    CODE_40025(false, "40025", "不合法的子菜单按钮名字长度"),
    CODE_40026(false, "40026", "不合法的子菜单按钮 KEY 长度"),
    CODE_40027(false, "40027", "不合法的子菜单按钮 URL 长度"),
    CODE_40028(false, "40028", "不合法的自定义菜单使用用户"),
    CODE_40029(false, "40029", "无效的 oauth_code"),
    CODE_40030(false, "40030", "不合法的 refresh_token"),
    CODE_40031(false, "40031", "不合法的 openid 列表"),
    CODE_40032(false, "40032", "不合法的 openid 列表长度"),
    CODE_40033(false, "40033", "不合法的请求字符，不能包含 \\uxxxx 格式的字符"),
    CODE_40035(false, "40035", "不合法的参数"),
    CODE_40038(false, "40038", "不合法的请求格式"),
    CODE_40039(false, "40039", "不合法的 URL 长度"),
    CODE_40048(false, "40048", "无效的url"),
    CODE_40050(false, "40050", "不合法的分组 id"),
    CODE_40051(false, "40051", "分组名字不合法"),
    CODE_40060(false, "40060", "删除单篇图文时，指定的 article_idx 不合法"),
    CODE_40117(false, "40117", "分组名字不合法"),
    CODE_40118(false, "40118", "media_id 大小不合法"),
    CODE_40119(false, "40119", "button 类型错误"),
    CODE_40120(false, "40120", "子 button 类型错误"),
    CODE_40121(false, "40121", "不合法的 media_id 类型"),
    CODE_40125(false, "40125", "无效的appsecret"),
    CODE_40132(false, "40132", "微信号不合法"),
    CODE_40137(false, "40137", "不支持的图片格式"),
    CODE_40155(false, "40155", "请勿添加其他公众号的主页链接"),
    CODE_40163(false, "40163", "oauth_code已使用"),
    CODE_41001(false, "41001", "缺少 access_token 参数"),
    CODE_41002(false, "41002", "缺少 appid 参数"),
    CODE_41003(false, "41003", "缺少 refresh_token 参数"),
    CODE_41004(false, "41004", "缺少 secret 参数"),
    CODE_41005(false, "41005", "缺少多媒体文件数据"),
    CODE_41006(false, "41006", "缺少 media_id 参数"),
    CODE_41007(false, "41007", "缺少子菜单数据"),
    CODE_41008(false, "41008", "缺少 oauth code"),
    CODE_41009(false, "41009", "缺少 openid"),
    CODE_42001(false, "42001", "access_token 超时，请检查 access_token 的有效期，请参考基础支持 - 获取 access_token 中，对 access_token 的详细机制说明"),
    CODE_42002(false, "42002", "refresh_token 超时"),
    CODE_42003(false, "42003", "oauth_code 超时"),
    CODE_42007(false, "42007", "用户修改微信密码， accesstoken 和 refreshtoken 失效，需要重新授权"),
    CODE_43001(false, "43001", "需要 GET 请求"),
    CODE_43002(false, "43002", "需要 POST 请求"),
    CODE_43003(false, "43003", "需要 HTTPS 请求"),
    CODE_43004(false, "43004", "需要接收者关注"),
    CODE_43005(false, "43005", "需要好友关系"),
    CODE_43019(false, "43019", "需要将接收者从黑名单中移除"),
    CODE_44001(false, "44001", "多媒体文件为空"),
    CODE_44002(false, "44002", "POST 的数据包为空"),
    CODE_44003(false, "44003", "图文消息内容为空"),
    CODE_44004(false, "44004", "文本消息内容为空"),
    CODE_45001(false, "45001", "多媒体文件大小超过限制"),
    CODE_45002(false, "45002", "消息内容超过限制"),
    CODE_45003(false, "45003", "标题字段超过限制"),
    CODE_45004(false, "45004", "描述字段超过限制"),
    CODE_45005(false, "45005", "链接字段超过限制"),
    CODE_45006(false, "45006", "图片链接字段超过限制"),
    CODE_45007(false, "45007", "语音播放时间超过限制"),
    CODE_45008(false, "45008", "图文消息超过限制"),
    CODE_45009(false, "45009", "接口调用超过限制"),
    CODE_45010(false, "45010", "创建菜单个数超过限制"),
    CODE_45011(false, "45011", "API 调用太频繁，请稍候再试"),
    CODE_45015(false, "45015", "回复时间超过限制"),
    CODE_45016(false, "45016", "系统分组，不允许修改"),
    CODE_45017(false, "45017", "分组名字过长"),
    CODE_45018(false, "45018", "分组数量超过上限"),
    CODE_45047(false, "45047", "客服接口下行条数超过上限"),
    CODE_45064(false, "45064", "创建菜单包含未关联的小程序"),
    CODE_45065(false, "45065", "相同 clientmsgid 已存在群发记录，返回数据中带有已存在的群发任务的 msgid"),
    CODE_45066(false, "45066", "相同 clientmsgid 重试速度过快，请间隔1分钟重试"),
    CODE_45067(false, "45067", "clientmsgid 长度超过限制"),
    CODE_46001(false, "46001", "不存在媒体数据"),
    CODE_46002(false, "46002", "不存在的菜单版本"),
    CODE_46003(false, "46003", "不存在的菜单数据"),
    CODE_46004(false, "46004", "不存在的用户"),
    CODE_47001(false, "47001", "解析 JSON/XML 内容错误"),
    CODE_48001(false, "48001", "api 功能未授权，请确认公众号已获得该接口，可以在公众平台官网 - 开发者中心页中查看接口权限"),
    CODE_48002(false, "48002", "粉丝拒收消息（粉丝在公众号选项中，关闭了 “ 接收消息 ” ）"),
    CODE_48004(false, "48004", "api 接口被封禁，请登录 mp.weixin.qq.com 查看详情"),
    CODE_48005(false, "48005", "api 禁止删除被自动回复和自定义菜单引用的素材"),
    CODE_48006(false, "48006", "api 禁止清零调用次数，因为清零次数达到上限"),
    CODE_48008(false, "48008", "没有该类型消息的发送权限"),
    CODE_50001(false, "50001", "用户未授权该 api"),
    CODE_50002(false, "50002", "用户受限，可能是违规后接口被封禁"),
    CODE_50005(false, "50005", "用户未关注公众号"),
    CODE_61451(false, "61451", "参数错误 ( false,invalid parameter)"),
    CODE_61452(false, "61452", "无效客服账号 ( false,invalid kf_account)"),
    CODE_61453(false, "61453", "客服帐号已存在 ( false,kf_account exsited)"),
    CODE_61454(false, "61454", "客服帐号名长度超过限制 ( false, 仅允许 10 个英文字符，不包括 @ 及 @ 后的公众号的微信号 )( false,invalid   kf_acount length)"),
    CODE_61455(false, "61455", "客服帐号名包含非法字符 ( false, 仅允许英文 + 数字 )( false,illegal character in     kf_account)"),
    CODE_61456(false, "61456", "客服帐号个数超过限制 ( false,10 个客服账号 )( false,kf_account count exceeded)"),
    CODE_61457(false, "61457", "无效头像文件类型 ( false,invalid   file type)"),
    CODE_61450(false, "61450", "系统错误 ( false,system error)"),
    CODE_61500(false, "61500", "日期格式错误"),
    CODE_63001(false, "63001", "部分参数为空"),
    CODE_63002(false, "63002", "无效的签名"),
    CODE_65301(false, "65301", "不存在此 menuid 对应的个性化菜单"),
    CODE_65302(false, "65302", "没有相应的用户"),
    CODE_65303(false, "65303", "没有默认菜单，不能创建个性化菜单"),
    CODE_65304(false, "65304", "MatchRule 信息为空"),
    CODE_65305(false, "65305", "个性化菜单数量受限"),
    CODE_65306(false, "65306", "不支持个性化菜单的帐号"),
    CODE_65307(false, "65307", "个性化菜单信息为空"),
    CODE_65308(false, "65308", "包含没有响应类型的 button"),
    CODE_65309(false, "65309", "个性化菜单开关处于关闭状态"),
    CODE_65310(false, "65310", "填写了省份或城市信息，国家信息不能为空"),
    CODE_65311(false, "65311", "填写了城市信息，省份信息不能为空"),
    CODE_65312(false, "65312", "不合法的国家信息"),
    CODE_65313(false, "65313", "不合法的省份信息"),
    CODE_65314(false, "65314", "不合法的城市信息"),
    CODE_65316(false, "65316", "该公众号的菜单设置了过多的域名外跳（最多跳转到 3 个域名的链接）"),
    CODE_65317(false, "65317", "不合法的 URL"),
    CODE_87009(false, "87009", "无效的签名"),

    CODE_40037(false, "40037", "订阅模板id为空不正确"),
    CODE_41028(false, "41028", "weapp_template_msg.form_id过期或者不正确"),
    CODE_41029(false, "41029", "weapp_template_msg.form_id已被使用"),
    CODE_41030(false, "41030", "page路径不正确，需要保证在现网版本小程序中存在，与app.json保持一致"),
    CODE_43101(false, "43101", "用户拒绝接受消息，如果用户之前曾经订阅过，则表示用户取消了订阅关系"),
    CODE_45029(false, "45029", "生成码个数总和到达最大个数限制"),
    CODE_45072(false, "45072", "command字段取值不对"),
    CODE_45080(false, "45080", "下发输入状态，需要之前30秒内跟用户有过消息交互"),
    CODE_45081(false, "45081", "已经在输入状态，不可重复下发"),
    CODE_47003(false, "47003", "模板参数不准确，可能为空或者不满足规则，errmsg会提示具体是哪个字段出错"),
    CODE_47501(false, "47501", "参数 activity_id 错误"),
    CODE_47502(false, "47502", "参数 target_state 错误"),
    CODE_47503(false, "47503", "参数 version_type 错误"),
    CODE_47504(false, "47504", "activity_id 过期"),
    CODE_89002(false, "89002", "没有绑定开放平台帐号"),
    CODE_89300(false, "89300", "订单无效"),
    CODE_40164(false, "40164", "请求ip没有在白名单内，请前往微信公众平台设置"),

    CODE_9001001(false, "9001001", "POST 数据参数不合法"),
    CODE_9001002(false, "9001002", "远端服务不可用"),
    CODE_9001003(false, "9001003", "Ticket 不合法"),
    CODE_9001004(false, "9001004", "获取摇周边用户信息失败"),
    CODE_9001005(false, "9001005", "获取商户信息失败"),
    CODE_9001006(false, "9001006", "获取 OpenID 失败"),
    CODE_9001007(false, "9001007", "上传文件缺失"),
    CODE_9001008(false, "9001008", "上传素材的文件类型不合法"),
    CODE_9001009(false, "9001009", "上传素材的文件尺寸不合法"),
    CODE_9001010(false, "9001010", "上传失败"),
    CODE_9001020(false, "9001020", "帐号不合法"),
    CODE_9001021(false, "9001021", "已有设备激活率低于 50% ，不能新增设备"),
    CODE_9001022(false, "9001022", "设备申请数不合法，必须为大于 0 的数字"),
    CODE_9001023(false, "9001023", "已存在审核中的设备 ID 申请"),
    CODE_9001024(false, "9001024", "一次查询设备 ID 数量不能超过 50"),
    CODE_9001025(false, "9001025", "设备 ID 不合法"),
    CODE_9001026(false, "9001026", "页面 ID 不合法"),
    CODE_9001027(false, "9001027", "页面参数不合法"),
    CODE_9001028(false, "9001028", "一次删除页面 ID 数量不能超过 10"),
    CODE_9001029(false, "9001029", "页面已应用在设备中，请先解除应用关系再删除"),
    CODE_9001030(false, "9001030", "一次查询页面 ID 数量不能超过 50"),
    CODE_9001031(false, "9001031", "时间区间不合法"),
    CODE_9001032(false, "9001032", "保存设备与页面的绑定关系参数错误"),
    CODE_9001033(false, "9001033", "门店 ID 不合法"),
    CODE_9001034(false, "9001034", "设备备注信息过长"),
    CODE_9001035(false, "9001035", "设备申请参数不合法"),
    CODE_9001036(false, "9001036", "查询起始值 begin 不合法");

    private final boolean success;

    private final String code;

    private final String message;

    /**
     * 是否成功
     *
     * @return 是否成功
     */
    public boolean success() {
        return success;
    }

    /**
     * 获取返回信息
     *
     * @return 返回code
     */
    @Override
    public String code() {
        return code;
    }

    /**
     * 获取描述
     *
     * @return 返回描述
     */
    @Override
    public String desc() {
        return message;
    }
}
